package com.allwees.bs.c.module.product;

import com.allwees.bs.c.module.product.dto.ProductDetailsDTO;
import com.allwees.bs.c.module.product.vo.ProductVO;
import com.allwees.bs.core.modelbase.page.PaginateDTO;
import org.springframework.util.CollectionUtils;

import java.util.List;
import java.util.stream.Collectors;

/**
 * @Author Daniel
 * @Version 1.0.0
 * @Description
 * @CreateTime 2020/10/29 17:04
 */
public interface VoConvertor {

    /**
     * 精简字段，节约序列化时间
     * @param paginateDTO
     * @return
     */
    default PaginateDTO<ProductDetailsDTO> convert(PaginateDTO<ProductDetailsDTO> paginateDTO){
        List<ProductDetailsDTO> results = paginateDTO.getResults();
        if(!CollectionUtils.isEmpty(results)){
            paginateDTO.setResults(results.stream().map(ProductVO::new).collect(Collectors.toList()));
        }
        return paginateDTO;
    }

}
